home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / beaninfo / SwingBeanInfo.class (.txt)
Encoding:
Java Class File  |  1999-07-15  |  5.0 KB  |  190 lines

  1. package javax.swing.beaninfo;
  2.  
  3. import java.awt.Image;
  4. import java.beans.BeanDescriptor;
  5. import java.beans.BeanInfo;
  6. import java.beans.FeatureDescriptor;
  7. import java.beans.IndexedPropertyDescriptor;
  8. import java.beans.IntrospectionException;
  9. import java.beans.Introspector;
  10. import java.beans.PropertyDescriptor;
  11. import java.beans.SimpleBeanInfo;
  12. import java.lang.reflect.Method;
  13.  
  14. public abstract class SwingBeanInfo extends SimpleBeanInfo {
  15.    public static final String BOUND = "bound";
  16.    public static final String CONSTRAINED = "constrained";
  17.    public static final String PROPERTYEDITORCLASS = "propertyEditorClass";
  18.    public static final String READMETHOD = "readMethod";
  19.    public static final String WRITEMETHOD = "writeMethod";
  20.    public static final String DISPLAYNAME = "displayName";
  21.    public static final String EXPERT = "expert";
  22.    public static final String HIDDEN = "hidden";
  23.    public static final String PREFERRED = "preferred";
  24.    public static final String SHORTDESCRIPTION = "shortDescription";
  25.    public static final String CUSTOMIZERCLASS = "customizerClass";
  26.  
  27.    private static String capitalize(String var0) {
  28.       if (var0.length() == 0) {
  29.          return var0;
  30.       } else {
  31.          char[] var1 = var0.toCharArray();
  32.          var1[0] = Character.toUpperCase(var1[0]);
  33.          return new String(var1);
  34.       }
  35.    }
  36.  
  37.    public BeanDescriptor createBeanDescriptor(Class var1, Object[] var2) {
  38.       Class var3 = null;
  39.  
  40.       for(int var4 = 0; var4 < var2.length; var4 += 2) {
  41.          if ("customizerClass".equals((String)var2[var4])) {
  42.             var3 = (Class)var2[var4 + 1];
  43.             break;
  44.          }
  45.       }
  46.  
  47.       BeanDescriptor var5 = new BeanDescriptor(var1, var3);
  48.  
  49.       for(int var6 = 0; var6 < var2.length; var6 += 2) {
  50.          String var7 = (String)var2[var6];
  51.          Object var8 = var2[var6 + 1];
  52.          this.initFeatureDescriptor(var5, var7, var8);
  53.       }
  54.  
  55.       return var5;
  56.    }
  57.  
  58.    public PropertyDescriptor createPropertyDescriptor(Class var1, String var2, Object[] var3) {
  59.       PropertyDescriptor var4 = null;
  60.  
  61.       try {
  62.          var4 = new PropertyDescriptor(var2, var1);
  63.       } catch (IntrospectionException var14) {
  64.          try {
  65.             var4 = this.createReadOnlyPropertyDescriptor(var2, var1);
  66.          } catch (IntrospectionException var13) {
  67.             this.throwError(var13, "Can't create PropertyDescriptor for " + var2 + " ");
  68.          }
  69.       }
  70.  
  71.       for(int var5 = 0; var5 < var3.length; var5 += 2) {
  72.          String var6 = (String)var3[var5];
  73.          Object var7 = var3[var5 + 1];
  74.          if ("bound".equals(var6)) {
  75.             var4.setBound((Boolean)var7);
  76.          } else if ("constrained".equals(var6)) {
  77.             var4.setConstrained((Boolean)var7);
  78.          } else if ("propertyEditorClass".equals(var6)) {
  79.             var4.setPropertyEditorClass((Class)var7);
  80.          } else if ("readMethod".equals(var6)) {
  81.             String var8 = (String)var7;
  82.  
  83.             try {
  84.                var1.getMethod(var8);
  85.             } catch (Exception var12) {
  86.                this.throwError(var12, String.valueOf(var1) + " no such method as \"" + var8 + "\"");
  87.             }
  88.          } else if ("writeMethod".equals(var6)) {
  89.             String var15 = (String)var7;
  90.  
  91.             try {
  92.                Class var10 = var4.getPropertyType();
  93.                var1.getMethod(var15, var10);
  94.             } catch (Exception var11) {
  95.                this.throwError(var11, String.valueOf(var1) + " no such method as \"" + var15 + "\"");
  96.             }
  97.          } else {
  98.             this.initFeatureDescriptor(var4, var6, var7);
  99.          }
  100.       }
  101.  
  102.       return var4;
  103.    }
  104.  
  105.    private PropertyDescriptor createReadOnlyPropertyDescriptor(String var1, Class var2) throws IntrospectionException {
  106.       Method var3 = null;
  107.       String var4 = capitalize(var1);
  108.       Class[] var5 = new Class[0];
  109.  
  110.       try {
  111.          var3 = var2.getMethod("is" + var4, var5);
  112.       } catch (Exception var8) {
  113.       }
  114.  
  115.       if (var3 == null) {
  116.          try {
  117.             var3 = var2.getMethod("get" + var4, var5);
  118.          } catch (Exception var7) {
  119.          }
  120.       }
  121.  
  122.       if (var3 != null) {
  123.          return new PropertyDescriptor(var1, var3, (Method)null);
  124.       } else {
  125.          try {
  126.             var5 = new Class[]{Integer.TYPE};
  127.             var3 = var2.getMethod("get" + var4, var5);
  128.          } catch (NoSuchMethodException var6) {
  129.             throw new IntrospectionException("cannot find accessor method for " + var1 + " property.");
  130.          }
  131.  
  132.          return new IndexedPropertyDescriptor(var1, (Method)null, (Method)null, var3, (Method)null);
  133.       }
  134.    }
  135.  
  136.    public BeanInfo[] getAdditionalBeanInfo() {
  137.       Class var1 = ((SimpleBeanInfo)this).getBeanDescriptor().getBeanClass().getSuperclass();
  138.       BeanInfo var2 = null;
  139.  
  140.       try {
  141.          var2 = Introspector.getBeanInfo(var1);
  142.       } catch (IntrospectionException var4) {
  143.       }
  144.  
  145.       if (var2 != null) {
  146.          BeanInfo[] var3 = new BeanInfo[]{var2};
  147.          return var3;
  148.       } else {
  149.          return null;
  150.       }
  151.    }
  152.  
  153.    public int getDefaultPropertyIndex() {
  154.       return 0;
  155.    }
  156.  
  157.    public Image getIcon(int var1) {
  158.       return null;
  159.    }
  160.  
  161.    private void initFeatureDescriptor(FeatureDescriptor var1, String var2, Object var3) {
  162.       if ("displayName".equals(var2)) {
  163.          var1.setDisplayName((String)var3);
  164.       }
  165.  
  166.       if ("expert".equals(var2)) {
  167.          var1.setExpert((Boolean)var3);
  168.       }
  169.  
  170.       if ("hidden".equals(var2)) {
  171.          var1.setHidden((Boolean)var3);
  172.       }
  173.  
  174.       if ("preferred".equals(var2)) {
  175.          if ("preferred".equals(var2)) {
  176.             var1.setValue(var2, var3);
  177.          }
  178.       } else if ("shortDescription".equals(var2)) {
  179.          var1.setShortDescription((String)var3);
  180.       } else {
  181.          var1.setValue(var2, var3);
  182.       }
  183.  
  184.    }
  185.  
  186.    protected void throwError(Exception var1, String var2) {
  187.       throw new Error(((Throwable)var1).toString() + " " + var2);
  188.    }
  189. }
  190.